package com.ktgj.customer.service;

import java.math.BigDecimal;
import java.text.ParseException;
import java.util.Date;
import java.util.List;
import com.ktgj.customer.domain.CustomerRightdetail;
import com.ktgj.customer.domain.Rightdetail;

/**
 * 会员权益Service接口
 * 
 * @author ruoyi
 * @date 2021-07-30
 */
public interface ICustomerRightdetailService 
{
    /**
     * 查询会员权益
     * 
     * @param icustomerRightdetailD 会员权益ID
     * @return 会员权益
     */
    public CustomerRightdetail selectCustomerRightdetailById(Long icustomerRightdetailD);

    /**
     * 查询会员权益列表
     * 
     * @param customerRightdetail 会员权益
     * @return 会员权益集合
     */
    public List<CustomerRightdetail> selectCustomerRightdetailList(CustomerRightdetail customerRightdetail);

    /**
     * 新增会员权益
     * 
     * @param customerRightdetail 会员权益
     * @return 结果
     */
    public int insertCustomerRightdetail(CustomerRightdetail customerRightdetail);

    /**
     * 修改会员权益
     * 
     * @param customerRightdetail 会员权益
     * @return 结果
     */
    public int updateCustomerRightdetail(CustomerRightdetail customerRightdetail);

    /**
     * 批量删除会员权益
     * 
     * @param icustomerRightdetailDs 需要删除的会员权益ID
     * @return 结果
     */
    public int deleteCustomerRightdetailByIds(Long[] icustomerRightdetailDs);

    /**
     * 删除会员权益信息
     * 
     * @param icustomerRightdetailD 会员权益ID
     * @return 结果
     */
    public int deleteCustomerRightdetailById(Long icustomerRightdetailD);

    /**
     * 批量添加会员权益
     *
     * @param customerRightdetails
     * @return
     */
    public int insertBatch(List<CustomerRightdetail> customerRightdetails);

    //实例化会员权益
    //(权益集合， 会员id， 生效时间， 到期时间， 员工id， 权益来源（卡、权益包）， 会员卡id， 子订单id)
    public int addCustomerRightdetail(List<Rightdetail> rightdetailList, Long customerId, Date validDate, Date inValidDate, Long employeeId, String rightDetailSource, Long customerCardId, Long orderSubId, String cardCode, String payType, String orderId);

    /**
     * 查询会员是否有贵宾厅无限券
     * */
    public boolean infiniteVIPHall(Long id);
}
